home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Fixation 1.3 / connexions.c < prev    next >
Text File  |  1996-04-10  |  3KB  |  127 lines

  1. // connexions.c
  2.  
  3. #include <string.h>
  4.  
  5. #include "mytypes.h"
  6. #include "globals.h"
  7. #include "error.h"
  8. #include "util.h"
  9. #include "outgoing.h"
  10. #include "connexions.h"
  11. #include "window.h"
  12. #include "preffile.h"
  13. #include "game.h"
  14.  
  15. #include "tcpstuff.h"
  16.  
  17. ulong curTime = 0;
  18. Boolean gInTheThick = false, gLookinAtStorage;
  19. Boolean gPlaying = false, gSetStyle, gNeedPassword, gSentAlarm;
  20. Handle gSound1, gSound2, gSound3, gSound4;
  21.  
  22. static short oldStati[kMaxStreams];
  23.  
  24. void
  25. ConnInit(void)
  26. {
  27.     gSound1 = GetResource('snd ', 128);
  28.     gSound2 = GetResource('snd ', 129);
  29.     gSound3 = GetResource('snd ', 130);
  30.     gSound4 = GetResource('snd ', 131);
  31.     verify(gSound1); verify(gSound2);
  32.     verify(gSound3); verify(gSound4);
  33.     short nnn;
  34.     for (nnn=0;nnn<kMaxStreams;nnn++)
  35.         oldStati[nnn] = kStatClosed;
  36. }
  37.  
  38. void
  39. ResetConnectionInfo(void)
  40. {
  41.     short nnn;
  42.  
  43.     for (nnn=0;nnn<kMaxStreams;nnn++)
  44.         oldStati[nnn] = kStatClosed;
  45. }
  46.  
  47. static void
  48. WatchStati(void)
  49. {
  50.     short nnn;
  51.     
  52.     for (nnn=0;nnn<kMaxStreams;nnn++) {
  53.         if (oldStati[nnn] != kStatOpen && nexStatus[nnn] == kStatOpen) {
  54. //            tprintf("Connected to server on stream %d\r", nnn);
  55.             tprintf("Connected to server\r");
  56.             StartPlaying();
  57.         }
  58.         if (oldStati[nnn] != kStatClosed && nexStatus[nnn] == kStatClosed) {
  59.             StopPlaying();
  60. //            tprintf("Connection closed on stream %d\r", nnn);
  61.         }
  62.             
  63.         oldStati[nnn] = nexStatus[nnn];        // please to remember
  64.     }
  65. }
  66.  
  67. void
  68. ConnIdle(void)
  69. {
  70.     WatchStati();
  71. }
  72.  
  73.  
  74. void OpenTalker(void)
  75. {
  76.     char adname[256];
  77.     char name[256], password[256];
  78.     unsigned long addr;
  79.     unsigned short port;
  80.     long passport = 5000;
  81.     
  82.     memcpy(name, gPrefs.name, kPlayerNameLength);
  83.     memcpy(password, gPrefs.password, kPlayerNameLength);
  84.     memcpy(adname, gPrefs.serverAddress, 256);
  85.     passport = gPrefs.port;
  86.     
  87.     if (!GetAnAddress(name, password, adname, &passport))
  88.         return;
  89.     port = passport;
  90.  
  91.     ResetConnectionInfo();
  92.     
  93.         // remember the stuff they chose
  94.     memcpy(gPrefs.serverAddress, adname, 256);
  95.     memcpy(gPrefs.name, name, kPlayerNameLength);
  96.     gPrefs.name[kPlayerNameLength-1] = 0;
  97.     memcpy(gPrefs.password, password, kPlayerNameLength);
  98.     gPrefs.password[kPlayerNameLength-1] = 0;
  99.     gPrefs.port = passport;
  100.  
  101.     if (NetNameToAddr(adname, &addr, &port))
  102.         tprintf("Can't resolve.\r");
  103.     else {
  104.         tprintf("trying "); PrintAddress(addr); tprintf(" : %u . . .\r", port);
  105.         if (PrepareTheWay(0)) {
  106.             VDebugStr("Error creating stream.");
  107.             return;        // failed to create
  108.         }
  109.         if (DoTCPActiveOpen(0, addr, port)) {
  110.         //    VDebugStr("Error opening connection.");
  111.             tprintf("Error opening connection -- is anybody out there?\r");
  112.                 // close the stream
  113.             ReleaseStreams();
  114.         }
  115.         else
  116.             tprintf("Opened connection.\r");
  117.     }
  118. }
  119.  
  120. void
  121. Audi5000(short stream)
  122. {
  123. //    SendImQuitting();
  124.     bprintf("quit\r");
  125.     ReleaseStreams();
  126. }
  127.